home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / text / DecompositionIterator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  43.0 KB  |  243 lines

  1. package java.text;
  2.  
  3. class DecompositionIterator {
  4.    public static final char NULLORDER = '\uffff';
  5.    private static final short SHORT_MAX_VALUE = Short.MAX_VALUE;
  6.    private static final char STERMINATOR = '\u0000';
  7.    private static final short[] kOffsetIndex = new short[]{0, 128, 256, 384, 512, 640, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 896, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768};
  8.    private static final short[] kOffsetValues = new short[]{32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 736, 739, 742, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 745, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 747, 32767, 750, 32767, 32767, 32767, 32767, 752, 32767, 32767, 755, 757, 759, 762, 32767, 32767, 764, 767, 769, 32767, 771, 775, 779, 32767, 0, 3, 6, 9, 12, 15, 32767, 18, 24, 27, 30, 33, 39, 42, 45, 48, 32767, 54, 57, 60, 63, 66, 69, 32767, 72, 78, 81, 84, 87, 90, 32767, 32767, 93, 96, 99, 102, 105, 108, 32767, 111, 117, 120, 123, 126, 132, 135, 138, 141, 32767, 147, 150, 153, 156, 159, 162, 32767, 165, 171, 174, 177, 180, 183, 32767, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 21, 114, 237, 240, 243, 246, 249, 252, 255, 258, 261, 264, 267, 270, 273, 276, 279, 282, 285, 288, 291, 294, 36, 129, 297, 300, 303, 306, 309, 312, 315, 318, 321, 32767, 783, 786, 324, 327, 330, 333, 32767, 336, 339, 342, 345, 348, 351, 789, 792, 51, 144, 354, 357, 360, 363, 366, 369, 795, 32767, 32767, 372, 375, 378, 381, 384, 387, 32767, 32767, 390, 393, 396, 399, 402, 405, 408, 411, 414, 417, 420, 423, 426, 429, 432, 435, 438, 441, 75, 168, 444, 447, 450, 453, 456, 459, 462, 465, 468, 471, 474, 477, 480, 483, 486, 489, 492, 495, 498, 501, 504, 507, 510, 798, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 513, 516, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 519, 522, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 800, 804, 808, 812, 815, 818, 821, 824, 827, 525, 528, 531, 534, 537, 540, 543, 546, 549, 553, 557, 561, 565, 569, 573, 577, 32767, 581, 585, 589, 593, 597, 600, 32767, 32767, 603, 606, 609, 612, 615, 618, 621, 625, 629, 632, 635, 830, 833, 836, 638, 641, 32767, 32767, 32767, 32767, 644, 648, 652, 655, 658, 661, 664, 667, 670, 673, 676, 679, 682, 685, 688, 691, 694, 697, 700, 703, 706, 709, 712, 715, 718, 721, 724, 727, 730, 733, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 839, 841, 843, 845, 847, 849, 851, 853, 855, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 857, 860, 863, 866, 869, 872, 32767, 32767, 875, 877, 879, 881, 883, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 885, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767};
  9.    private static final short[] kCanonicalIndex = new short[]{0, 0, 0, 0, 0, 0, 128, 0, 0, 256, 0, 384, 512, 640, 0, 0, 0, 0, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 0, 1920, 2048, 2176, 2304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2560, 2688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2816, 0, 0, 0, 0, 0, 2944, 0, 0, 0};
  10.    private static final byte[] kCanonicalValues = new byte[]{-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 104, 92, 92, 92, 92, 104, 88, 92, 92, 92, 92, 92, 74, 74, 92, 92, 92, 92, 74, 74, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, -127, -127, -127, -127, -127, 92, 92, 92, 92, 102, 102, 102, 102, 102, 102, 102, 102, 92, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 106, 106, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, 102, 102, 102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 92, 102, 102, 102, 102, 92, 102, 102, 102, 94, 92, 102, 102, 102, 102, 102, 102, -128, 92, 92, 92, 92, 92, 102, 102, 92, 102, 102, 94, 102, 102, -118, -117, -116, -115, -114, -113, -112, -111, -110, -109, -128, -108, -107, -106, -128, -105, -128, -104, -103, -128, 102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -101, -100, -99, -98, -97, -96, -95, -94, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -93, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, 102, 102, 102, 102, 102, 102, -128, -128, 102, 102, 102, 102, 92, 102, -128, -128, 102, 102, -128, 92, 102, 102, 92, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -91, -92, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -121, -128, -128, -128, -128, -90, -89, -88, -87, -86, -85, -84, -83, -128, -128, -128, -128, -119, -128, -128, -128, -82, -81, 102, 102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -80, -79, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -78, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -121, -128, -128, -128, -128, -77, -76, -75, -74, -128, -128, -128, -128, -128, -128, -128, -128, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -73, -72, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -71, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -121, -128, -128, -128, -128, -70, -69, -128, -128, -128, -128, -68, -67, -128, -128, -66, -65, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -64, -63, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -61, -62, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -121, -128, -128, -128, -128, -60, -59, -58, -57, -56, -128, -55, -54, -128, -128, -128, -128, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -53, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -121, -128, -128, -52, -128, -51, -50, -49, -128, -128, -128, -128, -128, -128, -128, -128, -128, -119, -128, -128, -128, -128, -128, -128, -128, -128, 102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -48, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -47, -46, -45, -128, -128, -128, -128, -128, -44, -43, -42, -128, -41, -40, -39, -119, -128, -128, -128, -128, -128, -128, -128, -38, -37, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -36, -128, -128, -128, -128, -128, -128, -35, -128, -128, -128, -128, -128, -34, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -33, -32, -31, -128, -128, -128, -128, -128, -128, -128, -128, -128, -119, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -30, -128, -128, -29, -28, -27, -26, -25, -24, -23, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -22, -21, -20, -19, -18, -17, -16, 0, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -15, -128, -128, -14, -13, -12, -11, -10, -9, -128, -8, -7, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -6, -5, -4, -3, -2, -1, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 92, 92, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, -128, 102, -128, 88, -128, -128, -128, -128, 92, 92, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -128, 15, 16, 102, 102, -119, -128, 102, 102, 102, 102, 102, 102, -128, -128, -128, -128, -122, -122, -122, -122, -122, -122, -128, -122, -128, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -128, -128, -128, -122, -122, -122, -122, -122, -122, -122, -128, -122, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, 102, -127, -127, 102, 102, 102, 102, -127, -127, -127, 102, 102, -128, -128, -128, -128, -127, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 90, 100, 104, 94, 96, 96, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -120, -120, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 102, 102, 102, 102, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128};
  11.    private static String contents = "A╠Ç\u0000A╠ü\u0000A╠é\u0000A╠â\u0000A╠ê\u0000A╠è\u0000C╠º\u0000D╠╡\u0000E╠Ç\u0000E╠ü\u0000E╠é\u0000E╠ê\u0000H╠╡\u0000I╠Ç\u0000I╠ü\u0000I╠é\u0000I╠ê\u0000L╠╖\u0000N╠â\u0000O╠Ç\u0000O╠ü\u0000O╠é\u0000O╠â\u0000O╠ê\u0000O╠╕\u0000T╠╡\u0000U╠Ç\u0000U╠ü\u0000U╠é\u0000U╠ê\u0000Y╠ü\u0000a╠Ç\u0000a╠ü\u0000a╠é\u0000a╠â\u0000a╠ê\u0000a╠è\u0000c╠º\u0000d╠╡\u0000e╠Ç\u0000e╠ü\u0000e╠é\u0000e╠ê\u0000h╠╡\u0000i╠Ç\u0000i╠ü\u0000i╠é\u0000i╠ê\u0000l╠╖\u0000n╠â\u0000o╠Ç\u0000o╠ü\u0000o╠é\u0000o╠â\u0000o╠ê\u0000o╠╕\u0000t╠╡\u0000u╠Ç\u0000u╠ü\u0000u╠é\u0000u╠ê\u0000y╠ü\u0000y╠ê\u0000A╠ä\u0000a╠ä\u0000A╠å\u0000a╠å\u0000A╠¿\u0000a╠¿\u0000C╠ü\u0000c╠ü\u0000C╠é\u0000c╠é\u0000C╠ç\u0000c╠ç\u0000C╠î\u0000c╠î\u0000D╠î\u0000d╠î\u0000E╠ä\u0000e╠ä\u0000E╠å\u0000e╠å\u0000E╠ç\u0000e╠ç\u0000E╠¿\u0000e╠¿\u0000E╠î\u0000e╠î\u0000G╠é\u0000g╠é\u0000G╠å\u0000g╠å\u0000G╠ç\u0000g╠ç\u0000G╠º\u0000g╠º\u0000H╠é\u0000h╠é\u0000I╠â\u0000i╠â\u0000I╠ä\u0000i╠ä\u0000I╠å\u0000i╠å\u0000I╠¿\u0000i╠¿\u0000I╠ç\u0000J╠é\u0000j╠é\u0000K╠º\u0000k╠º\u0000L╠ü\u0000l╠ü\u0000L╠º\u0000l╠º\u0000L╠î\u0000l╠î\u0000N╠ü\u0000n╠ü\u0000N╠º\u0000n╠º\u0000N╠î\u0000n╠î\u0000O╠ä\u0000o╠ä\u0000O╠å\u0000o╠å\u0000O╠ï\u0000o╠ï\u0000R╠ü\u0000r╠ü\u0000R╠º\u0000r╠º\u0000R╠î\u0000r╠î\u0000S╠ü\u0000s╠ü\u0000S╠é\u0000s╠é\u0000S╠º\u0000s╠º\u0000S╠î\u0000s╠î\u0000T╠º\u0000t╠º\u0000T╠î\u0000t╠î\u0000U╠â\u0000u╠â\u0000U╠ä\u0000u╠ä\u0000U╠å\u0000u╠å\u0000U╠è\u0000u╠è\u0000U╠ï\u0000u╠ï\u0000U╠¿\u0000u╠¿\u0000W╠é\u0000w╠é\u0000Y╠é\u0000y╠é\u0000Y╠ê\u0000Z╠ü\u0000z╠ü\u0000Z╠ç\u0000z╠ç\u0000Z╠î\u0000z╠î\u0000O╠¢\u0000o╠¢\u0000U╠¢\u0000u╠¢\u0000A╠î\u0000a╠î\u0000I╠î\u0000i╠î\u0000O╠î\u0000o╠î\u0000U╠î\u0000u╠î\u0000U╠ê╠ä\u0000u╠ê╠ä\u0000U╠ê╠ü\u0000u╠ê╠ü\u0000U╠ê╠î\u0000u╠ê╠î\u0000U╠ê╠Ç\u0000u╠ê╠Ç\u0000A╠ê╠ä\u0000a╠ê╠ä\u0000A╠ç╠ä\u0000a╠ç╠ä\u0000├å╠ä\u0000├ª╠ä\u0000G╠î\u0000g╠î\u0000K╠î\u0000k╠î\u0000O╠¿\u0000o╠¿\u0000O╠¿╠ä\u0000o╠¿╠ä\u0000╞╖╠î\u0000╩Æ╠î\u0000j╠î\u0000G╠ü\u0000g╠ü\u0000A╠è╠ü\u0000a╠è╠ü\u0000├å╠ü\u0000├ª╠ü\u0000├ÿ╠ü\u0000├╕╠ü\u0000A╠Å\u0000a╠Å\u0000A╠æ\u0000a╠æ\u0000E╠Å\u0000e╠Å\u0000E╠æ\u0000e╠æ\u0000I╠Å\u0000i╠Å\u0000I╠æ\u0000i╠æ\u0000O╠Å\u0000o╠Å\u0000O╠æ\u0000o╠æ\u0000R╠Å\u0000r╠Å\u0000R╠æ\u0000r╠æ\u0000U╠Å\u0000u╠Å\u0000U╠æ\u0000u╠æ\u0000 ╠é\u0000 ╠▓\u0000 ╠Ç\u0000 \u0000 ╠ê\u0000a\u0000 ╠ä\u00002\u00003\u0000 ╠ü\u0000╬╝\u0000 ╠º\u00001\u0000o\u00001Γüä4\u00001Γüä2\u00003Γüä4\u0000IJ\u0000ij\u0000L┬╖\u0000l┬╖\u0000╩╝n\u0000s\u0000DZ╠î\u0000Dz╠î\u0000dz╠î\u0000LJ\u0000Lj\u0000lj\u0000NJ\u0000Nj\u0000nj\u0000DZ\u0000Dz\u0000dz\u0000h\u0000╔ª\u0000j\u0000r\u0000╔╣\u0000╔╗\u0000╩ü\u0000w\u0000y\u0000 ╠å\u0000 ╠ç\u0000 ╠è\u0000 ╠¿\u0000 ╠â\u0000 ╠ï\u0000╔ú\u0000l\u0000s\u0000x\u0000╩ò\u0000Fr\u0000";
  12.    private static int maximumDecomposition = 888;
  13.    private static int maximumCanonical = 736;
  14.    private StringBuffer parsedStr;
  15.    private String str;
  16.    private int pIndex;
  17.    private int sIndex;
  18.    private int getEndIndex;
  19.    private int decmpMode;
  20.    private int getBeginIndex;
  21.    private int uptoOffset;
  22.    private static final CompactShortArray startOffsets;
  23.    static final byte BASE = -128;
  24.    private static CompactByteArray canonicals;
  25.  
  26.    public DecompositionIterator(String var1, int var2, int var3, int var4) {
  27.       this.str = var1;
  28.       this.parsedStr = new StringBuffer(var1.length());
  29.       this.sIndex = var2;
  30.       this.pIndex = 0;
  31.       this.getBeginIndex = var2;
  32.       this.getEndIndex = var3;
  33.       this.decmpMode = var4;
  34.    }
  35.  
  36.    public char next() {
  37.       if (this.decmpMode == 0) {
  38.          return this.sIndex >= this.str.length() ? '\uffff' : this.str.charAt(this.sIndex++);
  39.       } else {
  40.          if (this.pIndex >= this.parsedStr.length()) {
  41.             this.parsedStr.setLength(0);
  42.             this.pIndex = 0;
  43.             this.uptoOffset = this.sIndex;
  44.             if (this.sIndex >= this.getEndIndex) {
  45.                return '\uffff';
  46.             }
  47.  
  48.             char var1 = this.str.charAt(this.uptoOffset++);
  49.             this.parsedStr.append(var1);
  50.  
  51.             while(this.uptoOffset < this.getEndIndex) {
  52.                var1 = this.str.charAt(this.uptoOffset);
  53.                if ((448 >> Character.getType(var1) & 1) != 0) {
  54.                   break;
  55.                }
  56.  
  57.                this.parsedStr.append(var1);
  58.                ++this.uptoOffset;
  59.             }
  60.  
  61.             decompose(this.parsedStr, this.decmpMode);
  62.             fixCanonical(this.parsedStr);
  63.             this.uptoOffset -= this.sIndex;
  64.             this.sIndex += this.uptoOffset;
  65.          }
  66.  
  67.          return this.parsedStr.charAt(this.pIndex++);
  68.       }
  69.    }
  70.  
  71.    public char previous() {
  72.       if (this.decmpMode == 0) {
  73.          return this.sIndex <= this.getBeginIndex ? '\uffff' : this.str.charAt(--this.sIndex);
  74.       } else {
  75.          if (this.pIndex <= this.parsedStr.length()) {
  76.             if (this.pIndex > 1) {
  77.                --this.pIndex;
  78.                return this.parsedStr.charAt(this.pIndex);
  79.             }
  80.  
  81.             this.parsedStr.setLength(0);
  82.             this.pIndex = 0;
  83.             this.sIndex -= this.uptoOffset;
  84.          }
  85.  
  86.          return this.sIndex < this.str.length() ? this.str.charAt(this.sIndex) : '\uffff';
  87.       }
  88.    }
  89.  
  90.    public void reset() {
  91.       this.sIndex = this.getBeginIndex;
  92.       this.pIndex = 0;
  93.    }
  94.  
  95.    static String decompose(char var0, int var1) {
  96.       if (var1 == 0) {
  97.          StringBuffer var6 = new StringBuffer();
  98.          var6.append(var0);
  99.          return var6.toString();
  100.       } else {
  101.          int var2 = var1 == 1 ? maximumCanonical : 32767;
  102.          int var3 = startOffsets.elementAt(var0);
  103.          if (var3 >= var2) {
  104.             return "";
  105.          } else {
  106.             StringBuffer var4 = new StringBuffer();
  107.  
  108.             while(true) {
  109.                char var5 = contents.charAt(var3++);
  110.                if (var5 == 0) {
  111.                   return var4.toString();
  112.                }
  113.  
  114.                var4.append(var5);
  115.             }
  116.          }
  117.       }
  118.    }
  119.  
  120.    static void decompose(StringBuffer var0, int var1) {
  121.       decompose((StringBuffer)var0, 0, var0.length(), var1);
  122.    }
  123.  
  124.    static void decompose(StringBuffer var0, int var1, int var2, int var3) {
  125.       if (var3 == 0) {
  126.          String var4 = var0.toString().substring(var1, var2);
  127.          var0.setLength(0);
  128.          var0.append(var4);
  129.       }
  130.  
  131.       int var9 = var3 == 1 ? maximumCanonical : 32767;
  132.       StringBuffer var5 = new StringBuffer();
  133.  
  134.       for(int var6 = var1; var6 < var2; ++var6) {
  135.          char var7 = var0.charAt(var6);
  136.          int var8 = startOffsets.elementAt(var7);
  137.          if (var8 >= var9) {
  138.             var5.append(var7);
  139.          } else {
  140.             while(true) {
  141.                var7 = contents.charAt(var8++);
  142.                if (var7 == 0) {
  143.                   break;
  144.                }
  145.  
  146.                var5.append(var7);
  147.             }
  148.          }
  149.       }
  150.  
  151.       var0.setLength(0);
  152.       var0.append(var5.toString());
  153.    }
  154.  
  155.    static String decompose(String var0, int var1) {
  156.       return decompose((String)var0, 0, var0.length(), var1);
  157.    }
  158.  
  159.    static String decompose(String var0, int var1, int var2, int var3) {
  160.       if (var3 == 0) {
  161.          return var0.substring(var1, var2);
  162.       } else {
  163.          int var4 = var3 == 1 ? maximumCanonical : 32767;
  164.          StringBuffer var5 = new StringBuffer();
  165.  
  166.          for(int var6 = var1; var6 < var2; ++var6) {
  167.             char var7 = var0.charAt(var6);
  168.             int var8 = startOffsets.elementAt(var7);
  169.             if (var8 >= var4) {
  170.                var5.append(var7);
  171.             } else {
  172.                while(true) {
  173.                   var7 = contents.charAt(var8++);
  174.                   if (var7 == 0) {
  175.                      break;
  176.                   }
  177.  
  178.                   var5.append(var7);
  179.                }
  180.             }
  181.          }
  182.  
  183.          return var5.toString();
  184.       }
  185.    }
  186.  
  187.    static int decompose(char var0, char[] var1, int var2) {
  188.       if (var2 == 0) {
  189.          var1[0] = var0;
  190.          var1[1] = 0;
  191.          return 1;
  192.       } else {
  193.          int var3 = var2 == 1 ? maximumCanonical : 32767;
  194.          int var4 = startOffsets.elementAt(var0);
  195.          if (var4 >= var3) {
  196.             return 0;
  197.          } else {
  198.             int var5 = 0;
  199.  
  200.             while(true) {
  201.                char var6 = contents.charAt(var4++);
  202.                if (var6 == 0) {
  203.                   return var5;
  204.                }
  205.  
  206.                var1[var5++] = var6;
  207.             }
  208.          }
  209.       }
  210.    }
  211.  
  212.    static int getMaximumDecomposition() {
  213.       return maximumDecomposition;
  214.    }
  215.  
  216.    private static void fixCanonical(StringBuffer var0) {
  217.       int var1 = var0.length() - 1;
  218.       byte var3 = canonicals.elementAt(var0.charAt(var1));
  219.       --var1;
  220.  
  221.       for(; var1 >= 0; --var1) {
  222.          byte var2 = var3;
  223.          var3 = canonicals.elementAt(var0.charAt(var1));
  224.          if (var3 > var2 && var2 != -128) {
  225.             char var4 = var0.charAt(var1);
  226.             var0.setCharAt(var1, var0.charAt(var1 + 1));
  227.             var0.setCharAt(var1 + 1, var4);
  228.             if (var1 < var0.length() - 2) {
  229.                var1 += 2;
  230.             }
  231.  
  232.             var3 = canonicals.elementAt(var0.charAt(var1));
  233.          }
  234.       }
  235.  
  236.    }
  237.  
  238.    static {
  239.       startOffsets = new CompactShortArray(kOffsetIndex, kOffsetValues);
  240.       canonicals = new CompactByteArray(kCanonicalIndex, kCanonicalValues);
  241.    }
  242. }
  243.